package com.mustafaiev.tair.cts.dao;

import com.mustafaiev.tair.cts.exeptions.DataNotRemovedException;
import com.mustafaiev.tair.cts.exeptions.DataNotStoredException;
import com.mustafaiev.tair.cts.model.ICostTrackingSystemModel;

public interface ICostTrackingSystemDAO<T extends ICostTrackingSystemModel> {

	/**
	 * Saves objects to Database
	 * 
	 * @param t
	 *            - {@link ICostTrackingSystemModel}
	 */
	void doSave(T t) throws DataNotStoredException;

	/**
	 * Removes passed object from database
	 * 
	 * @param t
	 * @throws DataNotRemovedException
	 */
	void doDelete(T t) throws DataNotRemovedException;

	/**
	 * Removes object by passed ID
	 * 
	 * @param id
	 */
	void doDeleteById(Long id) throws DataNotRemovedException;

}
